/*
 * queue.h
 *
 *  Created on: May 23, 2013
 *      Author: Aden
 */

#ifndef QUEUE_H_
#define QUEUE_H_



#define BOOLEAN int;
#define MAX_QUEUE_SIZE  1000;

typedef struct queue_str {
  int  * Queue;
  int front;
  int back;
  int size;

  //member functions
  int(*enqueue)(struct queue_str *, int);
  int (*dequeue)(struct queue_str *);
  int(*empty)(struct queue_str *);
  int(*display)(struct queue_str *);
  int*(*getQueue)(struct queue_str *);


} QueueStr;

typedef QueueStr * QueuePtr;

QueuePtr newQueueConstructor(void);
int enqueue(QueuePtr this, int);
int dequeue(QueuePtr this);
int empty(QueuePtr this);
int display(QueuePtr this);
int* getQueue(QueuePtr this);

#endif /* QUEUE_H_ */
